package rsj.api.remind.entity;

import common.converter.CostValue;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author : shibixiao
 * @description : 预警日志表
 * @date : 2021-07-19 17:14
 **/
@Data
public class RemindInfo {

    /**
     * 预警ID
     */
    @Valid
    @NotBlank(message = "预警ID不可为空",groups = RemindInfo.Update.class)
    private String remindId;

    /**
     * 预警类型（包量、生效期）
     */
    @Valid
    @NotBlank(message = "预警类型不可为空")
    @CostValue(values = {"1","2"}, message = "预警类型必须是1（包量）或2（生效期）")
    private String remindType;

    /**
     * 预警方式（邮件）
     */
    @Valid
    @NotBlank(message = "预警方式不可为空")
    @CostValue(values = {"mail"}, message = "预警方式必须是mail")
    private String remindMode;

    /**
     * 预警条件
     */
    @Valid
    @NotNull(message = "预警条件不可为空")
    @Max(value = 100,message = "预警条件值在0~100之间")
    @Min(value = 0,message = "预警条件值在0~100之间")
    private Integer remindCond;

    /**
     * 预警频率
     */
    @Valid
    @NotNull(message = "预警频率不可为空")
    @Max(value = 100,message = "预警频率必须在0~100之间")
    @Min(value = 0,message = "预警频率必须在0~100之间")
    private Integer remindFreq;

    /**
     * 预警次数
     */
    @Valid
    @NotNull(message = "预警次数不可为空")
    @Max(value = 100,message = "预警次数必须在0~100之间")
    @Min(value = 0,message = "预警次数必须在0~100之间")
    private Integer remindNum;

    /**
     * 接收人ID（逗号分隔）
     */
    @Valid
    @NotBlank(message = "接收人不可为空")
    private String receiveUserId;

    /**
     * 接收人（查询时返回）
     */
    private String receiveUser;

    /**
     * 预警模板
     */
    @Valid
    @NotBlank(message = "预警内容不可为空")
    private String remindTemplate;

    /**
     * 是否开启预警(1开启，0关闭)
     */
    @Valid
    @NotBlank(message = "是否开启预警不可为空")
    @CostValue(values = {"0","1"}, message = "是否开启预警必须是0或1")
    private String remindOpen;

    public interface Update{}
}
